home *** CD-ROM | disk | FTP | other *** search
-
- X68000 RSDRV.SYS バッファ設定ドライバ
-
- rsbuf.r v1.00
- 1993 6/22 小笠原博之
-
- RSDRV.SYS の AUX0(本体内蔵RS232C端子) に、任意サイズの受信バッファを割り付
- けます。64byte しかない受信バッファを 1024~65536byte まで拡張することによっ
- て文字の取りこぼしをなくし、tmsio.x + IOCS を使用したプログラムで、tmsio.x の
- 代わりに RSDRV.SYS を使用できるようになります。
-
- 例えば Ko-Window の通信ソフト KX_Term20 は、今まで tmsio.x が必要でしたが、
- このドライバを使えば tmsio.x の代わりに RSDRV.SYS を用いることができるように
- なります。
-
-
-
- ●使い方
-
- rsbuf [スイッチ]
-
- 実行すると常駐します。この場合、AUX0(本体内蔵RS232Cポート) に 24Kbyteのバッ
- ファを割り当てます。バッファサイズは常駐時に -b スイッチで変更できます。
-
- スイッチ -r をつけると常駐解除します。
-
- -r 常駐解除
- -b<n> バッファサイズ指定 (Kbyte単位)
-
- CONFIG.SYS で常駐させる時は PROGRAM 行を使用して下さい。
-
-
-
- ●このドライバは何をするものか
-
- X68000 本体の RS232C ポートで通信を行う場合、IOCS の機能だけでは、通信速度
- も 9600bps までに限られてしまい、またハードフロー制御の設定ができませんでし
- た。そのため高機能な RS232C 用のドライバがさまざま作られ、それらを組み込んで
- 使うプログラムも多数存在します。
-
- 特に tmsio.x というドライバは高機能でありながら IOCS CALL でコントロールで
- き、かつ互換性があって扱いやすいため、通信ソフト KX_Term20 を作る場合にもお
- 世話になりました。
-
- ところが、新しい Human68k 付属の RSDRV.SYS を使用することにより、本体の
- RS232C ポートでも 19200bps までの速度で通信が可能で、RTS/CTS によるハードフ
- ロー制御ができるようになりました。tmsio.x の方がずっと機能が上なのですが、拡
- 張 RS232C ボードを使用している場合等、RSDRV.SYS を使用しなければならない場合
- のために、それを補佐する目的で作ったのがこのドライバです。
-
- 1) RSDRV.SYS 組み込み時には 64byte しかない受信バッファを 1024~65536 byte の
- 任意のサイズに変更する。
-
- 2) IOCS _SET232C における tmsio.x の拡張ビットをマスクし、RSDRV.SYS の設定が
- 誤動作しないようにする。
-
- 3) tmsio.x コントロールのための IOCS _SET232C の拡張ファンクション呼び出しを
- 無視するようにして、tmsio.x と互換性を保つ。
-
- 注意: 2) と 3) は tmsio.x と互換性を保つための処置ですが、これが有効なのは
- RS232C 設定やデータ送受信に IOCS CALL のみ使っているプログラムに限られま
- す。tmsio.x の内部ルーチンを直接呼び出したり参照しているようなプログラム
- では、このドライバを使っても tmsio.x の代わりに RSDRV.SYS が使えるように
- なるわけではありません。
-
- なお、このようなドライバを作ってはみたものの、やはりできることなら tmsio.x
- の使用の方をおすすめします。
-
-
-
- ● KX_Term20 で RSDRV.SYS を使う方法
-
- まず CONFIG.SYS で、RSDRV.SYS を組み込んでおきます。次にこの rsbuf.r を常
- 駐させます。バッファは 32Kbyte くらい確保して
-
- rsbuf.r -b32
-
- のようにして常駐させて下さい。
-
- あとは今まで通り Ko-Window を起動して、KX_Term20 (k20.win) を立ち上げれば
- tmsio.x の時と同じように使用することができるはずです。(KX_Term20 v2.37 以前
- のものでは、起動時に tmsio.x が常駐していないというメッセージが出ますが無視
- して下さい)
-
- ただし、RSDRV.SYS には無い機能があるため、以下の制限がつきます。
-
- ・通信速度は最大 19200bps まで (38400bps 以上は使えない)
-
- ・漢字コード設定は無視される (常に SJIS で JIS 自動変換もありません)
-
- ・ソフトフロー(XON)とハードフローの同時設定はできません(同時に設定し
- た場合、ハードフローの方が優先されます)
-
- ・その他 tmsio.x にある便利な機能は全部使えません。
-
- また、RS232C パラメータ変更のための RS.win は使用できません。
-
-
-
- ● RSDRV.SYS のファンクション
-
- 資料がなかったので、適当に調べたものです。(どっかに資料があったらまぬけ)
- 内容には一切責任を持ちませんし、この内容についてどっかに問い合わせるなんてこ
- とはしないで下さい。
-
- ・呼び出し方法
-
- 以下のレジスタを設定した後 trap #15 を行う。(つまり IOCS CALL の $f1 番)
-
- d0.l = $f1
- d2.w = 上位8bit : RS232Cポートの指定 0~5 が AUX0~5 に相当する
- 下位8bit : ファンクション番号 $30 ~ $39
- (d1 でないのは、IOCS 互換 CALL 時に d1 で引数を渡す場合があるため)
-
- ・ファンクション $30~$35
-
- IOCS 互換 CALL
-
- IOCS CALL の $30~$35 (IOCS _SET232C ~) と同じ機能を持ちます。パラメータ
- の与え方も全く同じです。IOCS 側は AUX0 にしか動作しないのに対し、こちらは
- ポート指定ができる、というだけの違いです。
-
- ・ファンクション $36,$37 (両者の違いは不明)
-
- 受信バッファの設定
-
- a1.l = バッファの先頭アドレス
- d1.l = バッファサイズ
-
- 指定ポートの受信バッファを設定します。ただし、最大 64Kbyte までしか設定で
- きません。(内部でバッファサイズが word で処理されているため) 設定前のバッ
- ファアドレスを a1.l に、設定前のバッファサイズを d1.w に返します。
-
- ・ファンクション $38,$39
-
- 解析していません。
-
-
-
- ●最後に
-
- 動作は RSDRV.SYS v2.02 (RS-232C DRIVER for X68000 version 2.02) でのみ確認
- しています。
-
- このプログラムの配布や利用は自由です。転載時に特に作者に連絡する必要はあり
- ません。
-
-
- 小笠原博之 oga@dgw.yz.yamagata-u.ac.jp
- SPS-NET: SPS0783 COR.
- DenDen-NET: DEN0006 COR. (米沢市 0238-23-3323)
-
-
-
-